/**
 * 自定义校验函数 - 参数介绍
 * @param { any } rule 当前对应的规则
 * @param { any } value 对应文本框的值
 * @param { any } callback 回调函数，不管是否通过校验，都必须执行
 */
export function validatorUsername(rule, value, callback) {
    if (!/^[a-zA-Z0-9]+$/.test(value)) return callback(new Error("只能输入数字或字母 ！"))
    callback()
}

export function validatorPwd(rule, value, callback) {
    // 检验密码强度
    if (/\d/.test(value) && /[a-z]/.test(value) && /[A-Z]/.test(value)) return callback()
    callback(new Error("密码强度较弱，请输入带有 大写字母、小写字母、数字三种字符组合的密码！"))
}

export function validatorPhone(rule, value, callback) {
    const reg = /^1[3-9]\d{9}$/;
    if (reg.test(value)) {
        callback();
    } else {
        callback(new Error("请输入正确的手机号格式！"));
    }
}

/** 不能为空*/
export function isNullValid(rulw, value, callback) {
    if (value === "" || value === undefined || value == null) {
        callback(new Error("不能为空"))
    } else {
        callback()
    }
}

export function isValuePresent(value) {
    return value !== undefined && value !== null && value !== ''
}

export function clearObject(obj) {
    return Object.fromEntries(Object.keys(obj).map(key => [key, '']))
}

export function getNewTimeM() {
    const now = new Date();
    const year = now.getFullYear();
    const month = String(now.getMonth() + 1).padStart(2, '0'); // 月份是从0开始的，所以需要+1
    const day = String(now.getDate()).padStart(2, '0');
    const formattedDate = `${year}-${month}-${day}`;
    return formattedDate;
}

export function getNewTime() {
    const now = new Date();
    const year = now.getFullYear();
    const month = String(now.getMonth() + 1).padStart(2, '0'); // 月份是从0开始的，所以需要+1
    const day = String(now.getDate()).padStart(2, '0');
    const formattedDate = `${year}${month}${day}`;
    return formattedDate;
}

// 随机生成订单
export function generateUniqueRandomNumbers() {
    return getNewTime() + (Math.floor(Math.random() * 10000000000) + 1).toString().padStart(10, '0');
};